﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
//
using System.Web.Caching;
using System.Data;
using System.Data.SqlClient;
using OsPortal;
/// <summary>
/// Summary description for clsKieuPhongTro
/// </summary>
public class clsKieuPhongTro
{
    static string strClassName = "clsKieuPhongTro";
	public clsKieuPhongTro()
	{
		//
		// TODO: Add constructor logic here
		//
	}

    /// <summary>
    /// Lấy danh sách kiểu phòng trọ
    /// </summary>
    /// <param name="strKP_ID">mã kiểu phòng trọ ("" nếu muốn lấy tất cả)</param>
    /// <param name="strTenKhongDau">tên kiểu phòng trọ không dấu ("" nếu muốn lấy tất cả)</param>
    /// <returns></returns>
    public static DataTable fncKieuPhongTro_FND(string strKP_ID, string strTenKhongDau)
    {
        // Lấy tham chiếu đến đối tượng Cache.
        Cache _cache = HttpContext.Current.Cache;
        string strCacheKPTenKhongDau = "KieuPhongTenKhongDau";
        DataTable dtData = null;
        try
        {
            if (_cache[strCacheKPTenKhongDau] == null)
            {
                dtData = oSqlDataHelper.sExecuteDataTable("KIEUPHONGTRO_FND", new SqlParameter[]{
                new SqlParameter("@P_KP_ID",strKP_ID)
                ,new SqlParameter("@P_KP_TENKHONGDAU",strTenKhongDau)
                });

                // Lưu giữ item trong cache
                // cùng với sliding expiration là 60 giây.
                HttpContext.Current.Cache.Insert(strCacheKPTenKhongDau, dtData, null, DateTime.MaxValue, TimeSpan.FromSeconds(60));
            }
            else
            {
                dtData = (DataTable)_cache[strCacheKPTenKhongDau];
            }
            return dtData;
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "SanPham_FND", ex.ToString());
            return null;
        }
        finally
        {
            //dtData.Dispose();
        }
    }

    // <summary>
    /// Kiểm tra tên chuyên mục không dấu có tồn tại không?
    /// </summary>
    /// <param name="strCategoryName_EN">Tên chuyên mục không dấu</param>
    /// <returns></returns>
    public static bool fncCheckExists_KieuPT(string strKieuPT_KhongDau)
    {
        DataTable dtData = fncKieuPhongTro_FND("","");
        try
        {
            if (dtData == null) return false;
            for (int i = 0; i < dtData.Rows.Count; i++)
            {
                if (dtData.Rows[i]["KP_TENKHONGDAU"].ToString() == strKieuPT_KhongDau) return true;
            }
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "fncCheckExists_KieuPT", ex.ToString());
            return false;
        }
        finally
        {
            //dtData.Dispose();
        }
        return false;
    }

    /// <summary>
    /// Lấy kiểu phòng trọ bởi tên không dấu
    /// Author: ThuanNH
    /// Create: 04/09/2013
    /// </summary>
    /// <param name="kp_tenkhongdau"></param>
    /// <returns></returns>
    public static DataTable fncGetChiTiet_by_TenKhongDau(string kp_tenkhongdau)
    {
        DataTable dtTinhThanh = null;
        try
        {
            dtTinhThanh = OsPortal.oDataHelper.filterData(fncKieuPhongTro_FND("", ""), "kp_tenkhongdau='" + kp_tenkhongdau + "'");
        }
        catch (Exception ex)
        {
            OsPortal.oFileHelper.WriteLogErr(strClassName, "getChiTiet_by_TenKhongDau", ex.ToString());
        }
        return dtTinhThanh;
    }

    /// <summary>
    /// Đếm số bản ghi của chuyên mục và khu vuc này
    /// </summary>
    /// <param name="strKP_ID">mã chuyên mục</param>
    /// <param name="strKV_ID">mã khu vuc</param>
    /// <returns></returns>
    public static int fnxCountPhongTro(string strKP_ID, string strKV_ID)
    {
        return OsPortal.oStringHelper.fncCnvNullToInt(oSqlDataHelper.sExecuteDataTable("SELECT COUNT(PT_ID) AS RT FROM PHONGTRO WHERE KP_ID='" + strKP_ID + "'  AND KV_ID = '" + strKV_ID + "'").Rows[0]["RT"]);
    }
}